5.15. Руководство по работе с ключевыми словами.¶
Ключевые слова - переменные, которые могут использоваться в различных частях приложения для генерации значений, актуальных на момент выполнения операции.
Ключевые слова используются в следующих разделах приложения:
- Каталог услуг
- Домашняя страница
- Формы
- Фильтры консолей
- Сайдбары (в операциях, связанных с элементами сайдбара).
Примечание
Например, при добавлении пользователем ключевого слова $CURRENT_USER$ в настройки сайдбара в приложении значение ключевого слова будет отображаться как текущий пользователь (Иван Иванов при входе в Систему под логином/паролем Ивана Иванова).
В приложении поддерживаются следующие типы ключевых слов:
- Системные ключевые слова
- Ключевые слова, заданные на уровне приложения
- Настраиваемые ключевые слова
- Ключевые слова, задаваемые администратором в настройках
- Программируемые ключевые слова
- Ключевые слова, программируемые разработчиком в скриптах.
5.15.1. Системные ключевые слова.¶
Ключевые слова для даты и времени.
В Системе реализована отдельная категория ключевых слов для даты и времени. При разрешении всех значений даты и времени (например, в одном запросе, в одном выражении) обеспечено формирование значения на основе одной и той же временной отметки. Например, $DATE$ и $DAY_AGO$ будут иметь одно и тоже значение часов, минут, секунд и миллисекунд. Следует обратить внимание, что отсчёт от единой временной отметки не будет соблюдаться при последовательном вызове разных значений по отдельности (используя метод getValue плагина $kw).
Ключевые слова для даты и времени.
- $DATE$ - Дата.
- $DATE_MS$ - Дата в миллисекундах.
- $HOUR_START$ - Начало текущего часа в формате ISO.
- $HOUR_START_MS$ - Начало текущего часа в миллисекундах.
- $DAY_START$ - Начало дня.
- $DAY_START_MS$ - Начало дня в миллисекундах.
- $DAY_AGO$ - День назад.
- $DAY_AGO_MS$ - День назад в миллисекундах.
- $WEEK_START$ -Начало недели.
- $WEEK_START_MS$ - Начало недели в миллисекундах.
- $MONTH_START$ - Начало месяца.
- $MONTH_START_MS$ - Начало месяца в миллисекундах.
Ключевые слова контекста.
Ключевые слова контекста получают значения из свойств контекста приложения и имеют префикс CTX (за исключением ключевых слов $SYSTEM_USER$ и $SYSTEM_USER_SN$, которые имеют такие имена традиционно). Сейчас доступны следующие ключевые слова свойств контекста:
$CTX_PAGE_TYPE$ - тип страницы (например, catalog, form). Допустимые типы описаны ниже.
«login» - на странице входа в Систему.
«home» - на домашней странице (/home).
«catalog» - на странице каталога услуг (/catalog).
«console» - на странице консоли (/console/).
«form» - на странице формы (/form/).
«dashboard» - на странице инструментальной панели (/dashboard/).
«form-editor» - на странице редактирования формы (в режиме администратора, /admin/forms/).
«undefined» - на странице, которая отсутствует в вышеприведённом списке.
$CTX_ENTITY_ID$ - ID текущей записи (если форма - записи схемы, если консоль - ID консоли и т.д.).
$CTX_IS_ADMIN$ - Признак, является ли пользователь администратором (true/false).
$CTX_LOCALE$ - Код текущей локали (например, en, ru).
$CTX_IS_MOBILE$ - Признак, запущено ли приложение на мобильном устройстве (true/false).
$CTX_IS_TABLET$ - Признак, запущено ли приложение на планшете (true/false).
$CTX_IS_DESKTOP$ - Признак, запущено ли приложение на устройстве с большим монитором (компьютер, ноутбук) (true/false).
$SYSTEM_USER$ - Логин пользователя, вошедшего в Систему.
$SYSTEM_USER_SN$ - Информация из свойства SN записи пользователя (например, «Иван Иванов»).
Ключевые слова формы.
Ключевые слова формы доступны только если приложение находится на странице формы, в ином случае на любое значение ключевого слова формы будет возвращена пустая строка.
Ключевое слово формы состоит из префикса FORM и идентификатора поля формы, значение из которого будет являться значением этого ключевого слова. Например, в форме инцидентов /form/schm001_form_0001/INC000000004051 следующие ключевые слова будут иметь соответствующие значения:
{ $FORM_in_003_004$: «TEST INCIDENT Bob Baxter Устранение неполадок подключения к сети в браузере Internet Explorer «, $FORM_0e82c9ff-74c2-3154-8be0-5e36c88dcf27$: «1114 Eighth Avenue, 31st Floor.» }
5.15.2. Настройка Ключевых слов.¶
В правом верхнем углу нажать поле с именем пользователя, в всплывающем меню выбрать пункт Настройки и в левом нижнем углу нажать пункт меню Ключевые слова (Рис. 5.15.1). Откроется форма настройки «Ключевые слова».
Форма настройки ключевых слов содержит следующие элементы (Рис. 5.15.2):
- Панель Текущие ключевые слова. Содержит список уже настроенных ключевых слов.
- Кнопка Добавить ключевое слово на панели Текущие ключевые слова. Позволяет открыть форму ввода нового ключевого слова.
- Флаг Глобальное. Включенный флаг «Глобальное» означает, что свойство является системным и изменить его может только Администратор, применительно ко всей Системе. Выключенный флаг «Глобальное» означает, что свойство является не системным, а пользовательским, то есть доступным для изменения Пользователем.
- Кнопка Удалить свойство. При нажатии кнопки происходит удаление уже настроенных ключевых слов.
- Кнопка ПОДТВЕРДИТЬ в правом нижнем углу формы позволяет подтвердить и сохранить изменения.
- Кнопка ОТМЕНА в правом нижнем углу формы позволяет отменить изменения.
Редактирование существующего ключевого слова
При нажатии на кнопку ключевого слова на панели Текущие ключевые слова открывается форма редактирования ключевого слова (Рис. 5.15.3).
Форма редактирования ключевого слова содержит следующие поля:
- Поле Наименование - содержит наименование ключевого слова.
- Поле Описание - краткое описание ключевого слова.
- Поле Код - может содержать как имя переменной, например, имя переменной SUB ключевого слова $CTX_USER_SUB$, так и код, например, {{ new Date().toLocaleString() }} - отображает локальную дату.
Сохранение изменений в форме редактирования ключевого слова происходит при нажатии клавиши ОТПРАВИТЬ в правом нижнем углу формы (Рис. 5.15.3).
Выход без сохранения осуществляется при нажатии кнопки ОТМЕНА в правом нижнем углу формы (Рис. 5.15.3).
Создание ключевого слова
При нажатии кнопки создания ключевого слова открывается форма создания нового ключевого слова (Рис. 5.15.4).
Заполнение формы создания ключевого слова проводится аналогично заполнению формы редактирования ключевого слова.
5.15.3. Программируемые ключевые слова¶
Описание процесса создания программируемых ключевых слов описано в Раздел 7.1.3 Руководства разработчика.
5.15.4. Использование ключевых слов в Системе.¶
5.15.4.1. Использование ключевых слов в сайдбарах.¶
Использование ключевых слов в сайдбарах зависит от типа элемента сайдбара. Ключевые слова могут использоваться в следующих типах элементов:
- Внутренняя ссылка с параметрами
- URL c параметрами
Примечание
Ключевые слова могут использоваться при формировании адресной строки и в значениях простых параметров.
5.15.4.2. Использование ключевых слов в Каталоге услуг.¶
В Каталоге услуг ключевые слова используются при построении строки URL в карточке услуги (Рис. 5.15.5).
В качестве примера можно привести строку URL
http://cbr.ru/currency_base/daily/?UniDbQuery.Posted=True&UniDbQuery.To={{ new Date($DAY_AGO_MS$).toLocaleDateString() }}
Услуга открывает страницу Банка России с курсом валют на дату «Вчера» (Рис. 5.15.6).
Внутри описано JavaScript-выражение, которое будет вычислено и вместо него подставится результат вычисления.
Внутри выражения используется ключевое слово $DAY_AGO_MS$, определяющее дату, предшествующую дате «Сегодня». При обработке выражения сначала будут заменены ключевые слова в выражении, а потом произойдёт вычисление.
Так же возможно «прямое» использование ключевого слова, вне JavaScript-выражения (Рис. 5.15.7).
Так, в строке URL
http://cbr.ru/currency_base/daily/?UniDbQuery.Posted=True&UniDbQuery.To=$PROG$
используется ключевое слово $PROG$, определяющее дату, предшествующую дате «Сегодня» на три дня.
Преобразуется ключевое слово в элемент строки URL в карточке каталога при переходе по URL.
5.15.4.3. Использование ключевых слов в Форме.¶
В форме можно вставить ключевое слово в любое поле текстового ввода и оно должно будет преобразовано при сохранении формы.
5.15.4.3.1. Вкладка Компоненты.¶
Компонент формы для текстового ввода - input. Для текстового ввода данных в компонент input используются следующие поля:
Поле Параметры.
В поле «Параметры» указываются конфигурации для внешних скриптов (зависимостей). Перечень конфигураций указывается в формате JSON.
Пример использования Ключевых слов в поле «Параметры» представлен ниже (Рис. 5.15.8):
Здесь строка «url»: «http://$File_Way$/MapLogger.js» эквивалентна строке «url»: «http://forms/currency_base/daily/MapLogger.js». Посредством Ключевого слова $File_Way$ в данном случае задается путь к файлу внешнего скрипта, т.е., Ключевое слово $File_Way$ заменяет выражение forms/currency_base/daily.
Поле Вычисляемое.
В данном поле задается вычисляемое значение. Вычисляемое значение вычисляется на основе значений других полей. Условие, по которому вычисляется значение, указывается в формате JSON (Рис. 5.15.9).
В данном случае полю default по-умолчанию присваивается значение кода текущей локали (Ключевое слово $CTX_LOCALE$), которое используется в случае ошибок вычисления.
Поле Действие.
В этом поле можно указать действие в формате JSON, которое будет выполнятся при определенных условиях.
Пример использования Ключевых слов в поле «Действие» представлен ниже (Рис. 5.15.10):
Здесь Ключевое слово $field_value$ указывает на строку form_field»:»in_009_015»,»schema»:»people»,»field»:»full_name, которая выводит данные на элемент формы.
Поле Видимый на.
В поле указывается условие видимости для элемента.
Пример использования Ключевых слов в поле «Видимый на» представлен ниже (Рис. 5.15.11):
Здесь указано следующее: данный компонент будет отображаться на форме, только если у другого компонента формы, имеющего идентификатор «ID текущей записи» (Ключевое слово $CTX_ENTITY_ID$), значение будет равным «123». То есть данный компонент будет виден или скрыт в зависимости от значения в другом компоненте формы.
5.15.4.3.2. Вкладка Параметры.¶
Вкладка «Параметры» используется для указания шаблона, по которому создается запись. Пример заполнения вкладки «Параметры» (Рис. 5.15.12):
В данном случае Ключевое слово $CTX_ENTITY_ID$ - ID текущей записи - используется как идентификатор шаблона.
5.15.4.3.3. Использование ключевых слов при заполнении значений формы.¶
Ключевые слова возможно использовать при заполнении значений полей формы. Ключевое слово на форме можно применить в любом поле текстового ввода.
Пример использования Ключевых слов при заполнении значений полей формы представлен ниже (Рис. 5.15.13):
Здесь в поле «Содержание» использовано ключевое слово $SYSTEM_USER_SN$ во фразе «Описание инцидента. Автор: $SYSTEM_USER_SN$». После сохранения формы и обновления данных в поле «Содержание» будет фраза «Описание инцидента. Автор: Иван Иванов». То есть, ключевое слово при сохранении будет заменено его значением.